package code.example.zookeeper.api;

/**
 * CreateMode 在创建节点时使用，用于指定节点的类型
 */
public enum CreateModeAPI {

    /**
     * The znode will not be automatically deleted upon client's disconnect.
     *  持久的，不会因为客户端断开自动删除
     */
    PERSISTENT,
    /**
     * The znode will not be automatically deleted upon client's disconnect,
     * and its name will be appended with a monotonically increasing number.
     * 持久的，不会因为客户端断开自动删除
     * 自增的，在path名称后自动增加数字顺序号，创建时不会出现节点已存在的异常。
     * 自增：在path名后面自动增加10位顺序数字，由0000000001开始
     */
    PERSISTENT_SEQUENTIAL,
    /**
     * The znode will be deleted upon the client's disconnect.
     * 临时的，当客户端断开自动删除
     *  临时节点不能创建子节点，否则会抛出KeeperException.NoChildrenForEphemerals异常
     */
    EPHEMERAL,
    /**
     * The znode will be deleted upon the client's disconnect, and its name
     * will be appended with a monotonically increasing number.
     * 临时的，当客户端断开自动删除
     * 自增的，在path名称后自动增加数字顺序号，创建时不会出现节点已存在的异常。
     */
    EPHEMERAL_SEQUENTIAL;
}
